package org.rabbitmq.one;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

public class Producer {

    /**
     * 队列名称
     */
    private final static String QUEUE_NAME = "hello";

    public static void main(String[] args) throws Exception {
        // 创建一个连接工厂
        ConnectionFactory factory = new ConnectionFactory();
        factory.setHost("192.168.98.128");
        factory.setPort(5672);
        factory.setUsername("admin");
        factory.setPassword("123");

        try (Connection connection = factory.newConnection(); Channel channel = connection.createChannel()) {
            /**
             * 生成一个队列
             * 1. 队列名称
             * 2. 队列里面的消息是否持久化，默认消息存储再内存中
             * 3. 该队列是否只供一个消费者进行消费，是否进行共享，true：可以多个消费者消费
             * 4. 是否自动删除，最后一个消费者端断开链接以后，该队列是否自动删除，true自动删除
             * 5. 其他参数
             */
            channel.queueDeclare(QUEUE_NAME, false, false, false, null);
            // StringBuilder message = new StringBuilder("hello world");
            String message;
            /**
             * 发送一个消息
             * 1. 发送到那个交换机
             * 2. 路由的key是那个
             * 3. 其他的参数信息
             * 4. 发送消息的消息体
             */
            for (int i = 0; i < 100; i++) {
                // message.append(">>").append(i);
                message = "Hello" + i;
                channel.basicPublish("", QUEUE_NAME, null, message.getBytes());
            }
            System.out.println("消息发送成功");
        }
    }
}
